package com.banesco.precargadepositos.interfaz.vistas;

import java.util.ArrayList;

import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.banesco.precargadepositos.comun.entidades.PreCarga;
import com.banesco.precargadepositos.comun.recursos.Recursos;
import com.banesco.precargadepositosandroid.R;

/**
 * Vista que  permite realizar el manejo del componente personalizado Ticket
 * @author Juan Carlos Coello
 * Trascend NC - 09/2013
 */
public class Ticket extends BaseAdapter {

	private ArrayList<PreCarga> _ticketsConsultados;
	private Context _context;
	private PreCarga ticket;

	public Ticket(ArrayList<PreCarga> ticketsConsultados, Context context) {
		_ticketsConsultados = ticketsConsultados;
		_context = context;
	}

	/**
	 * Metodo que obtiene la camtidad de tickes cargados en la base de datos
	 */
	public int getCount() {
		return _ticketsConsultados.size();
	}

	/**
	 * Metodo que devuelve el ticket seleccionado
	 */
	public Object getItem(int position) {
		return _ticketsConsultados.get(position);
	}

	/**
	 * Metodo que devuelve la posicion el la lista del ticket seleccionado
	 */
	public long getItemId(int position) {
		return position;
	}

	/**
	 * Metodo que devuelve la instancia de la vista de la lista de tickets
	 */
	public View getView(final int position, View convertView, ViewGroup parent) {
		View view = convertView;
		if (view == null) {
			LayoutInflater viewInflater = (LayoutInflater) _context
					.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
			view = viewInflater.inflate(R.layout.ticket, null);
		}

		ImageView ivIcono = (ImageView) view.findViewById(R.id.ticketIvIcono);
		TextView tvFecha = (TextView) view.findViewById(R.id.ticketTvFecha);
		TextView tvDocumentoBen = (TextView) view.findViewById(R.id.ticketTvNumeroDocumento);
		TextView tvNumeroTicket = (TextView) view.findViewById(R.id.ticketTvLabelNumeroticket);
		LinearLayout llContenedor = (LinearLayout) view.findViewById(R.id.ticketLlContenedor);

		ticket = _ticketsConsultados.get(position);
		if (ticket.getTipoTransaccion() == Recursos.PREDEPOSITO)
			ticket.setIcono(R.drawable.ic_bs_ticket);
		else
			ticket.setIcono(R.drawable.ic_bs_ticket);
		ivIcono.setImageResource(ticket.getIcono());
		tvFecha.setText(ticket.getFechaEmision());
		tvDocumentoBen.setText(ticket.getDocumentoBenTickets());
		tvNumeroTicket.setText(Recursos.TICKET.concat(ticket.getNumeroTicket()));
		llContenedor.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				Intent datosPrecarga;
				try {
					//Se asignan los datos de la precarga a la siguiente ventana dependiendo de su procedencia (prepago o predep)
					//v.setBackgroundColor(Color.parseColor("#00CCCCCC"));
					ticket = _ticketsConsultados.get(position);
					if (ticket.getTipoTransaccion() == Recursos.PREDEPOSITO)
						datosPrecarga = new Intent(_context, DatosPreDeposito.class);
					else
						datosPrecarga = new Intent(_context, DatosPrePagoTDC.class);

					datosPrecarga.putExtra("fechaEmision", ticket.getFechaEmision());
					datosPrecarga.putExtra("numeroTicket", ticket.getNumeroTicket());

					datosPrecarga.putExtra("tipoDocumentoBen", ticket.getTipoDocumentoBen());
					datosPrecarga.putExtra("numeroDocumentoBen", ticket.getNumeroDocumentoBen());
					datosPrecarga.putExtra("codigoEstado",ticket.getCodigoEstado());
					datosPrecarga.putExtra("estado",ticket.getEstado());
					datosPrecarga.putExtra("tipoTarjeta",ticket.getTipoTarjeta());
					datosPrecarga.putExtra("numeroCuentaTarjeta",ticket.getNumeroCuenta_Tarjeta());
					datosPrecarga.putExtra("tipoDocumentoDep", ticket.getTipoDocumentoDep());
					datosPrecarga.putExtra("numeroDocumentoDep", ticket.getNumeroDocumentoDep());				
					datosPrecarga.putExtra("tipoPrecarga", ticket.getTipoPrecarga());
					datosPrecarga.putExtra("numeroCheque",ticket.getNumeroCheque());

					datosPrecarga.putExtra("montoCheque",ticket.getMontoCheque());
					datosPrecarga.putExtra("montoEfectivo",ticket.getMontoEfectivo());

					_context.startActivity(datosPrecarga);
				}
				catch(Exception e) {
					e.printStackTrace();
				}
			}
		});


		return view;
	}





}
